This document relates to generating canonical representations of JSON documents.
JavaScript Object Notation (JSON) is a data-interchange format that is built on two structures, objects and arrays. A JSON object is an unordered set of name/value pairs. Each JSON object begins with a left brace ({) and ends with a right brace (}). Each name/value pair inside an object is separated by a comma (,) and, within each name/value pair, the name is followed by a colon (:). A JSON array is an ordered collection of values. Each JSON array begins with a left bracket ([) and ends with a right bracket (]). Values within an array are separated by commas (,).
Because of the structure of the JSON format, a JSON document can potentially have multiple logically equivalent physical representations. Thus, two JSON documents may be logically equivalent despite having different physical representations.